{"componentChunkName":"component---src-templates-post-tsx","path":"/quick-sort.md/","result":{"data":{"markdownRemark":{"html":"<ul>\n<li>퀵 정렬(Quick Sort)이란?</li>\n<li>퀵 정렬 살펴보기</li>\n<li>퀵 정렬 실행해보기 with 자바스크립트</li>\n</ul>\n<hr>\n<h2 id=\"퀵-정렬quick-sort이란\" style=\"position:relative;\"><a href=\"#%ED%80%B5-%EC%A0%95%EB%A0%ACquick-sort%EC%9D%B4%EB%9E%80\" aria-label=\"퀵 정렬quick sort이란 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>퀵 정렬(Quick Sort)이란?</h2>\n<p>데이터의 범위를 반으로 나눈 다음, 그 범위를 다시 반으로 나누어 정렬하는 처리를 반복한다.</p>\n<h2 id=\"퀵-정렬-살펴보기\" style=\"position:relative;\"><a href=\"#%ED%80%B5-%EC%A0%95%EB%A0%AC-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0\" aria-label=\"퀵 정렬 살펴보기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>퀵 정렬 살펴보기</h2>\n<ul>\n<li>우선 피봇(기준 값)을 정한다. 피봇으로 정할 데이터는 어떤 데이터든 상관없다.</li>\n<li>정렬한 데이터의 크기가 피봇보다 큰 그룹과 작은 그룹으로 분할한다.</li>\n<li>나눈 그룹 안에서도 똑같이 피붓을 정한 후 위와 같은 방식으로 분할한다.</li>\n<li>이처럼 분할을 반복해 정렬하는 알고리즘을 <code class=\"language-text\">분할 정복 알고리즘</code>이라고 한다</li>\n</ul>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 519px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/33c1014932e4ee058dc9b4a594706c94/b23ad/quickSortEx.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 99.32432432432432%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAD8klEQVQ4y32S6W8bRRjG9++Dj0hIRSpCFRKilOsDlaAiLdCvFVIT2jRN0zRQ2lyNndOOb6+9jp147Ry2Y3uP2Vmv7fWx9vraY/ZgnABfkHj0aPQ+v3nnw8w7RDAQ2PB4DeqdFv5DozxG7A1KeczEGqI2zeSmeeQ146tmYgMTHHVyTSfX9Wmxigui0WjAWs2RgV1n3K7YK9NijqrlErUc1SnRCnMu5ZP1s1QtT8nFE6cl2C2Abcm8LfOEeyXLdZFtI9sxkIULTOpNWRAlx3U1yzVt17CdkWEh3Om4/4ro9vqdXp8HQpXjipflCsMq/UFPVXVkTZDtasAdFtzxpd7NtfmYIpBdIeGOSlM4LBFMdAdEPVx8T4jvcvF9ENthIl6YCiiJt3pkzsy9Nqlf0dHs304/Ruk5lJ5FKRwfE8z2suB9Xt1Z5r0vKtvLHF49L+DhatP7aLD2rZF8YvrvGcH7ZnDGCMyYgR/N4AMz9ABHM3ifAAAwDMtxLMsy7D8SBAFZ+HaO1UnYjV1X9jmNfWx76j2neeBiy34iSZLhGOlehB3a55yH3Lzfpn32aaS3fk9dvBWMZyLxDMpFrXwc5SLWWRzRUfM0pmcOjWyIgAJkeVDPJWA6JNGkeBxVy7Td5CwubZfCjaYsy00kFuFxGKRDIBPmqMMxKDhS2ZLK01HZlgXrjSqADIAVIMrtjmmiSw5WYINhqvheGrLqrQ5fk6q8ABtyWx3iU3hkhHMlHNqtVr0mXg9wPB6HA/69be+Bz0eSpGHoGPaVLgTc1f7VrB2HGE40RR20lX5b6WGi6YYyHGNSFSTTsgejUUvp4b+AyfXvGGsTpY+j2lf7BDw75rNJJktxdGpUPRmXQr2jZ21ytn3q08oUvKDZLMXSFDg7GXM5BI40xjc8Xx1erI8KGwT0LMieJ+L2c3l3SVi4M1j4QJ1/T332/uTPT4RHHzYOVuqeeXFrvrn/Slr8Ul26gSKzlu8n0/cL8v1M8OUSUzoH5YJQLkx6LXvQRILX4jZtVdQUGTAV9rLIV0qQreijgTXpWZLfhh6ntu1IOwSZSAZipJUPIDqgrv/Qf3O3vz6jbj3sbz0cv/osmkyTScrJHaJ8SF37fvjuQSiZTR4dO1m/TocJCHieB5ZYQrColaJaIaQVw1opNrkktfweFEURCnatjKSKVooblQSEUKqJjli0apeE+x9dv2p7bEqq7v6vCB3kNPbYEPI6kzZ42mAzeDUBPeayg0Jc52mdOzH47JRPfaIzGX3akDMqKUJ5ebvz9GNl5evu3I0urudvKi+/6C593n97V/nto+7v3yjLt5WVr7qLn2LYXb6jLNzqYfj6u+7Tm38BdxX50vkPBSoAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"실행 화면\"\n        title=\"실행 화면\"\n        src=\"/static/33c1014932e4ee058dc9b4a594706c94/b23ad/quickSortEx.png\"\n        srcset=\"/static/33c1014932e4ee058dc9b4a594706c94/12f09/quickSortEx.png 148w,\n/static/33c1014932e4ee058dc9b4a594706c94/e4a3f/quickSortEx.png 295w,\n/static/33c1014932e4ee058dc9b4a594706c94/b23ad/quickSortEx.png 519w\"\n        sizes=\"(max-width: 519px) 100vw, 519px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<h3 id=\"계산량-확인해보기\" style=\"position:relative;\"><a href=\"#%EA%B3%84%EC%82%B0%EB%9F%89-%ED%99%95%EC%9D%B8%ED%95%B4%EB%B3%B4%EA%B8%B0\" aria-label=\"계산량 확인해보기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>계산량 확인해보기</h3>\n<p>퀵 정렬은 피봇을 기준으로 한 데이터의 크기에 따라 전체 데이터를 균형 있게 절반씩 분할해 나가며,<br>\n그 결과로 log₂n단 만들어진다.<br>\n오더는 O(nlogn)이다.<br>\n하지만 데이터를 나열한 순서가 좋지 않으면 효율이 나빠지고, 최악의 경우에는 오더가 O(n²)이 될 수 있다.</p>\n<h2 id=\"퀵-정렬-실행해보기-with-자바스크립트\" style=\"position:relative;\"><a href=\"#%ED%80%B5-%EC%A0%95%EB%A0%AC-%EC%8B%A4%ED%96%89%ED%95%B4%EB%B3%B4%EA%B8%B0-with-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8\" aria-label=\"퀵 정렬 실행해보기 with 자바스크립트 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>퀵 정렬 실행해보기 with 자바스크립트</h2>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- html --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>form</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>inputForm<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span>퀵 정렬<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>input</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>str<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">size</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>50<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">type</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>input</span> <span class=\"token attr-name\">type</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>button<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">value</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>정렬하기<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">onClick</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>doSort()<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>form</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>form</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>outputForm<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span>정렬 결과<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>textarea</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>result<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">cols</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>50<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">rows</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>20<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>textarea</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>form</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token comment\">// javascript</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">doSort</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">let</span> inputForm <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span>forms<span class=\"token punctuation\">.</span>inputForm<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">let</span> outputForm <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span>forms<span class=\"token punctuation\">.</span>outputForm<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">let</span> ary <span class=\"token operator\">=</span> inputForm<span class=\"token punctuation\">.</span>str<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">.</span><span class=\"token function\">split</span><span class=\"token punctuation\">(</span><span class=\"token string\">','</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  ary <span class=\"token operator\">=</span> ary<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">e</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">Number</span><span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">=</span> ary<span class=\"token punctuation\">.</span><span class=\"token function\">join</span><span class=\"token punctuation\">(</span><span class=\"token string\">' '</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n  outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">=</span> outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">+</span> <span class=\"token string\">'---'</span> <span class=\"token operator\">+</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n  <span class=\"token function\">quickSort</span><span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">=</span> outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">+</span> <span class=\"token string\">'---'</span> <span class=\"token operator\">+</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n  <span class=\"token function\">printAry</span><span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">=</span> outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">+</span> <span class=\"token string\">'done!'</span> <span class=\"token operator\">+</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">function</span> <span class=\"token function\">quickSort</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">ary</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">function</span> <span class=\"token function\">sort</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">start<span class=\"token punctuation\">,</span> end</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>start <span class=\"token operator\">>=</span> end<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span>\n      <span class=\"token keyword\">let</span> left <span class=\"token operator\">=</span> start<span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">let</span> right <span class=\"token operator\">=</span> end<span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">let</span> ref <span class=\"token operator\">=</span> ary<span class=\"token punctuation\">[</span>Math<span class=\"token punctuation\">.</span><span class=\"token function\">round</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>left <span class=\"token operator\">+</span> right<span class=\"token punctuation\">)</span> <span class=\"token operator\">/</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>left <span class=\"token operator\">&lt;</span> right<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">[</span>left<span class=\"token punctuation\">]</span> <span class=\"token operator\">>=</span> ref<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>right <span class=\"token operator\">></span> left<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">[</span>right<span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;=</span> ref<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n              <span class=\"token keyword\">let</span> n <span class=\"token operator\">=</span> ary<span class=\"token punctuation\">[</span>left<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n              ary<span class=\"token punctuation\">[</span>left<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> ary<span class=\"token punctuation\">[</span>right<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n              ary<span class=\"token punctuation\">[</span>right<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> n<span class=\"token punctuation\">;</span>\n              right <span class=\"token operator\">=</span> right <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n              <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span>\n            right <span class=\"token operator\">=</span> right <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token function\">printAry</span><span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n        left <span class=\"token operator\">=</span> left <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">[</span>right<span class=\"token punctuation\">]</span> <span class=\"token operator\">></span> ref<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token function\">sort</span><span class=\"token punctuation\">(</span>start<span class=\"token punctuation\">,</span> right <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">sort</span><span class=\"token punctuation\">(</span>right<span class=\"token punctuation\">,</span> end<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">[</span>right<span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;</span> ref<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token function\">sort</span><span class=\"token punctuation\">(</span>start<span class=\"token punctuation\">,</span> right<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">sort</span><span class=\"token punctuation\">(</span>right <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> end<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token function\">sort</span><span class=\"token punctuation\">(</span>start<span class=\"token punctuation\">,</span> right <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">sort</span><span class=\"token punctuation\">(</span>right <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> end<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token function\">sort</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> ary<span class=\"token punctuation\">.</span>length <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">function</span> <span class=\"token function\">printAry</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">ary</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">=</span> outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">+</span> ary<span class=\"token punctuation\">.</span><span class=\"token function\">join</span><span class=\"token punctuation\">(</span><span class=\"token string\">' '</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h3 id=\"실행-화면\" style=\"position:relative;\"><a href=\"#%EC%8B%A4%ED%96%89-%ED%99%94%EB%A9%B4\" aria-label=\"실행 화면 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>실행 화면</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 481px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/4c535077871359fe7c4f29d8c17f3a86/d024a/quickSort.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 81.75675675675677%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABJ0lEQVQ4y52U6W6DMBCEef9HS38SNRJqbVA4AjFHCEcCSaYMLRKyCFBWGgFm+Ty7a2HEcQwhBDzPBePxeOD5fOL1eq0Sc9u27cV7IwgCCCkgvr/gHI8d2ENZlqtUVRWiKMLHbgfT3EOpMwxpS5h7E4fDJ85KIc9zFEWB2+2G+/2+KLpqmqZz+FuZwR1OpxPy6xWXywVsQZqm/cs5sVxuyus4jCRJQNEZQapzyaueOBWDQ8bQU4MAx3Fg2zaOXQ8ty+qf9URdU8DeIcskyPd9hGEIKSU4KD1xHLPALMt6IPvIUumOfR0SNgE5CPaQR0H9TVr/eDWQzlzX7SfG8RM6nt6/gXVdv53o0vokkIvvprnJ4RRwKTY7nNMicEtMAtf+BHQNJ0IH/gBOeuV5CdNuZAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"실행 화면\"\n        title=\"실행 화면\"\n        src=\"/static/4c535077871359fe7c4f29d8c17f3a86/d024a/quickSort.png\"\n        srcset=\"/static/4c535077871359fe7c4f29d8c17f3a86/12f09/quickSort.png 148w,\n/static/4c535077871359fe7c4f29d8c17f3a86/e4a3f/quickSort.png 295w,\n/static/4c535077871359fe7c4f29d8c17f3a86/d024a/quickSort.png 481w\"\n        sizes=\"(max-width: 481px) 100vw, 481px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<hr>\n<h4 id=\"reference\" style=\"position:relative;\"><a href=\"#reference\" aria-label=\"reference permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Reference</h4>\n<ul>\n<li><a href=\"https://www.gilbut.co.kr/book/view?bookcode=BN002328\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">모두의 알고리즘 with 자바스크립트</a></li>\n</ul>","excerpt":"퀵 정렬(Quick Sort)이란? 퀵 정렬 살펴보기 퀵 정렬 실행해보기 with 자바스크립트 퀵 정렬(Quick Sort)이란? 데이터의 범위를 반으로 나눈 다음, 그 범위를 다시 반으로 나누어 정렬하는 처리를 반복한다. 퀵 정렬 살펴보기 우선 피…","tableOfContents":"<ul>\n<li><a href=\"/quick-sort.md/#%ED%80%B5-%EC%A0%95%EB%A0%ACquick-sort%EC%9D%B4%EB%9E%80\">퀵 정렬(Quick Sort)이란?</a></li>\n<li>\n<p><a href=\"/quick-sort.md/#%ED%80%B5-%EC%A0%95%EB%A0%AC-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0\">퀵 정렬 살펴보기</a></p>\n<ul>\n<li><a href=\"/quick-sort.md/#%EA%B3%84%EC%82%B0%EB%9F%89-%ED%99%95%EC%9D%B8%ED%95%B4%EB%B3%B4%EA%B8%B0\">계산량 확인해보기</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/quick-sort.md/#%ED%80%B5-%EC%A0%95%EB%A0%AC-%EC%8B%A4%ED%96%89%ED%95%B4%EB%B3%B4%EA%B8%B0-with-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8\">퀵 정렬 실행해보기 with 자바스크립트</a></p>\n<ul>\n<li><a href=\"/quick-sort.md/#%EC%8B%A4%ED%96%89-%ED%99%94%EB%A9%B4\">실행 화면</a></li>\n</ul>\n</li>\n</ul>","fields":{"slug":"/quick-sort.md/"},"frontmatter":{"title":"퀵 정렬(Quick Sort)","date":"Jul 12, 2021","tags":["JavaScript","알고리즘"],"keywords":["argorithm","퀵 정렬","quick","javascript","정렬"],"update":"Jan 01, 0001"}}},"pageContext":{"slug":"/quick-sort.md/","series":[],"lastmod":"2021-07-12"}},"staticQueryHashes":["2027115977","694178885"]}